﻿using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.Xna.Framework;
using Microsoft.Xna.Framework.Audio;
using Microsoft.Xna.Framework.Content;
using Microsoft.Xna.Framework.GamerServices;
using Microsoft.Xna.Framework.Graphics;
using Microsoft.Xna.Framework.Input;
using Microsoft.Xna.Framework.Media;

namespace Dev2419a_LunarLander3D
{
    class Menu // Classe do Menu de iniciar do jogo
    {
        private Texture2D menu;

        private Texture2D botaoIniciar;
        private Texture2D botaoCreditos;

        // Posição e dimensão dos botões que são levadas para a classe Game1 para testarem a colisão do mouse
        public Vector2 dimensaoBotoes = new Vector2(200, 75);
        public Vector2 posicaoIniciar = new Vector2(550, 375);
        public Vector2 posicaoCreditos = new Vector2(550, 475);

        int espaco = 2; // espaçamento horizontal e vertical entre as imagens dos frames no desenho dos botões.
        int estadoIniciar = 0; // 0 = normal | 1 = rollover
        int estadoCreditos = 0; // 0 = normal | 1 = rollover

        
        public Menu(ContentManager Content, Vector2 viewport)
        {

            menu = Content.Load<Texture2D>("Menu");
            botaoIniciar = Content.Load<Texture2D>("Botoes");
            botaoCreditos = Content.Load<Texture2D>("Botoes");
        }

        public void Update(GameTime gameTime, KeyboardState keyboard, KeyboardState oldKeyboard)
        { 
            // Animação do Botão Iniciar
            if ((Mouse.GetState().X > posicaoIniciar.X) && (Mouse.GetState().X < (posicaoIniciar.X + dimensaoBotoes.X)))
            {
                if ((Mouse.GetState().Y > posicaoIniciar.Y) && (Mouse.GetState().Y < (posicaoIniciar.Y + dimensaoBotoes.Y)))
                {
                    estadoIniciar = 1; // rollover
                }
                else
                {
                    estadoIniciar = 0;
                }
            }
            else
            {
                estadoIniciar = 0;
            }

            // Animação do Botão Créditos
            if ((Mouse.GetState().X > posicaoCreditos.X) && (Mouse.GetState().X < (posicaoCreditos.X + dimensaoBotoes.X)))
            {
                if ((Mouse.GetState().Y > posicaoCreditos.Y) && (Mouse.GetState().Y < (posicaoCreditos.Y + dimensaoBotoes.Y)))
                {
                    estadoCreditos = 1; // rollover
                }
                else
                {
                    estadoCreditos = 0;
                }
            }
            else
            {
                estadoCreditos = 0;
            }

        }

        public void Draw(GameTime gameTime, SpriteBatch spriteBatch)
        {
            spriteBatch.Draw(menu, Vector2.Zero, Color.White);

            spriteBatch.Draw(botaoIniciar, posicaoIniciar, new Rectangle((int)((dimensaoBotoes.X + espaco) * estadoIniciar), 0, (int)dimensaoBotoes.X, (int)dimensaoBotoes.Y), Color.White);
            spriteBatch.Draw(botaoCreditos, posicaoCreditos, new Rectangle((int)((dimensaoBotoes.X + espaco) * estadoCreditos), (int)(dimensaoBotoes.Y + espaco), (int)dimensaoBotoes.X, (int)dimensaoBotoes.Y), Color.White);
            
        }
    }
}
